#ifndef LEXER_H
#define LEXER_H
#include "environment.hpp"
using namespace std;

typedef enum {
	NOARGS=0,
	DISABLESCOPE=BIT(1),
	DISABLERECURSION=BIT(2),
	DISABLE_NEWLINE_GET=BIT(3)
} LexerFlag;
typedef unsigned char LexerFlags;

vector<Variable> tokenize(string full, Environment& env, LexerFlags largs=NOARGS, std::istream &source=std::cin);
Variable* arraytize(string full, Environment &env);
Variable orate(string,Environment&, LexerFlags largs=NOARGS, std::istream &source=std::cin);

#endif
